<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="../../public/css/monokai_sublime.min.css">
    <link rel="stylesheet" href="../../public/css/heightlength.css">
    <link rel="stylesheet" href="../../public/css/mxjs.css">
    <link rel="stylesheet" href="../../public/css/prism.css">
    <script src="../../public/js/jquery.js"></script>
    <script src="../../public/js/highlight.min.js"></script>
    <script src="../../public/js/prism.js"></script>
    <script src="../../public/js/clipboard.min.js"></script>

</head>
<body>
<button>点击</button>
<div class="container">
    <div class="jsbg">
        <div class="col-lg-12 mxlength">
            <div class="mx-1">
                <h2>https://blog.csdn.net/b954960630/article/details/82634008</h2>
                <code>
                    /i表示对大小写不敏感
                    /g全局匹配
                    字面量创建方式特殊含义的字符不需要转义，实例创建方式需要转义
                    var reg1 = new RegExp('\d');  //    /d/
                    var reg2 = new RegExp('\\d')  //   /\d/
                    var reg3 = /\d/;
                    元字符
                    代表特殊含义的元字符

                    \d : 0-9之间的任意一个数字  \d只占一个位置
                    \w : 数字，字母 ，下划线 0-9 a-z A-Z _
                    \s : 空格或者空白等
                    \D : 除了\d
                    \W : 除了\w
                    \S : 除了\s
                    . : 除了\n之外的任意一个字符
                    \ : 转义字符
                    | : 或者
                    () : 分组
                    \n : 匹配换行符
                    \b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
                    ^ : 限定开始位置 => 本身不占位置
                    $ : 限定结束位置 => 本身不占位置
                    [a-z] : 任意字母 []中的表示任意一个都可以
                    [^a-z] : 非字母 []中^代表除了
                    [abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

                    例如：求出这个字符串'abAAbcBCCccdaACBDDabcccddddaab'中出现最多的字母,并求出出现多少次(忽略大小写)。
                    var str = 'abbbbAAbcBCCccdaACBDDabcccddddaab';
                    str = str.toLowerCase().split('').sort(function(a,b){return a.localeCompare(b)}).join('');

                    var reg = /(\w)\1+/ig;
                    var maxStr = '';
                    var maxLen = 0;
                    str.replace(reg,function($0,$1){
                    var regLen = $0.length;
                    if(regLen>maxLen){
                    maxLen = regLen;
                    maxStr = $1;
                    }else if(maxLen == regLen){
                    maxStr += $1;
                    }
                    })
                    console.log(`出现最多的字母是${maxStr},共出现了${maxLen}次`)

                    var str = '123aaa456';
                    var reg = /\d+/;  //只捕获一次,一次尽可能多的捕获
                    var res = str.match(reg)
                    console.log(res)
                    // ["123", index: 0, input: "123aaa456"]
                    reg = /\d+?/g; //解决贪婪性、懒惰性
                    res = str.match(reg)
                    console.log(res)
                    // ["1", "2", "3", "4", "5", "6"]



                    (?!exp) 这个就是说字符出现的位置的右边不能是exp这个表达式。
                    var str = 'nodejs';
                    var reg = /node(?!js)/;
                    console.log(reg.test(str)) // false
                    (?<=exp) 这个就是说字符出现的位置的前边是exp这个表达式。
                    var str = '￥998$888';
                    var reg = /(?<=\$)\d+/;
                    console.log(reg.exec(str)) //888
                    (?<!exp) 这个就是说字符出现的位置的前边不能是exp这个表达式。
                    var str = '￥998$888';
                    var reg = /(?<!\$)\d+/;
                    console.log(reg.exec(str)) //998
                </code>
            </div>
        </div>
        <div class="col-lg-12  ">
      <pre class="mScroll">
        <code class="lang-javascript">
var str="The rain in SPAIN stays mainly in the plain";
	var n=str.match(/ain/ig);//ain,AIN,ain,ain
//找出这个字符串中的所有数字
var str = 'abc123de45fgh6789qqq111';
//方法1
     function findNum(str) {
        var tmp = '',
            arr = [];
        for (var i = 0; i < str.length; i++) {
            var cur = str[i];
            if (!isNaN(cur)) {
                tmp += cur;
            } else {
                if (tmp) {
                    arr.push(tmp);
                    tmp = '';
                }
            }
        }
        if (tmp) {
            arr.push(tmp)
        }
        return arr;
    }
    console.log(findNum(str))
    //["123", "45", "6789", "111"]

//方法2 使用正则表达式
    var reg = /\d+/g;
    console.log(str.match(reg))
   // ["123", "45", "6789", "111"]

            var str ='  我是空格君  ';
var reg = /^\s+|\s+$/g; //匹配开头结尾空格
var res = str.replace(reg,'');

		</code>
    </pre>
        </div>
    </div>
</div>
<script>
    let str="bf4a4facd123";
    console.log(str.substring(0,str.length-1))
    console.log(str.substring(1,str.length))
    console.log(str.substring(str.length/2,str.length/2+1))
// let reg=/\d?/g  //["", "", "", "4", "4", "", "", "", "1", "2", "3", ""]
 //let reg=/\d+/g  //["44", "123"]
// let reg=/\d/g  //["4", "4", "1", "2", "3"]
    let reg=/(ac)/
   console.log(str.match(reg))

    window.onload = function () {
        var clipboard = new Clipboard('.toolbar-item');
        clipboard.on('success', function (e) {
            console.log(e.text);
        });
        clipboard.on('error', function (e) {
            console.log(e);
        });
        $(".toolbar-item").html("<span>复制</span>")
    }
</script>
</body>
</html>
